// // 后台接口返回的菜单树（接口返回没有component字段）：
var apiMenuData = [
]

// 本地菜单树
var localMenuData = [
  { path: '/404', component: 15 },
  { path: '*', redirect: '/404', hidden: true }
]

// 1.拍平localMenuData
var local = {}
function formatLocal(data) {
  data.forEach(item => {
    local[item.path] = item.component
    if (item.children) {
      formatLocal(item.children)
    }
  })
}

// 2. 循环查找复制
function merge(data, local) {
  data.forEach(item => {
    var component = local[item.path]
    if (component) {
      item.component = component
    }
    if (item.children) {
      merge(item.children, local)
    }
  })
}

formatLocal(localMenuData)
merge(apiMenuData, local)

console.log('apiMenuData', apiMenuData)
